#pragma once

#include "Game/Scene/Entity.h"
#include "Render/Buffer/VertexBuffer.h"
#include "Render/Buffer/IndexBuffer.h"
#include "RayTracingMath.h"




class LocalEntity : public Entity
{
public:

	LocalEntity(entt::entity handle, GameScene* gameScene) : Entity(handle, gameScene) {};

protected:

	virtual void ReleaseResource() override;

	virtual void OnTick(float deltaTime) override;

public:

	MaterialGpu mMaterial;

	DescriptorMask mDescriptorMask;

	RefCountPtr<RHIBuffer> mUboBuffer;

	// For Ray Tracing
	RefCountPtr<VertexBuffer> mVertexBuffer;

	RefCountPtr<IndexBuffer> mIndexBuffer;

	RefCountPtr<RHIBuffer> mTransformBuffer;

	RefCountPtr<RHIBuffer> mMaterialBuffer;
};